package com.rizzo.web.util;

import java.util.Locale;

/**
 * @author Jan Lievens
 */
public enum LocaleEnum {

    /**
     * Field ENGLISH
     */EN("en", "English", new Locale("en"), 3),
    /**
     * Field NEDERLANDS
     */NL("nl", "Nederlands", new Locale("nl"), 1),
    /**
     * Field DEUTSCH
     */DE("de", "Deutsch", new Locale("de"), 4),
    /**
     * Field FRANCAIS
     */FR("fr", "Fran�ais", new Locale("fr"), 2);

    /**
     * Field localeMnemonic
     */
    private String localeMnemonic;

    /**
     * Field fullQualifiedLanguageName
     */
    private String fullQualifiedLanguageName;

    /**
     * Field locale
     */
    private Locale locale;

    /**
     * Field order
     */
    private Integer order;

    /**
     * Default constructor.
     *
     * @param localeMnemonic            A short String representation of the LocaleEnum.
     * @param order                     An Integer with the order of importance
     * @param fullQualifiedLanguageName A fully String representation of the language spoken.
     * @param locale                    The equivalent Locale
     */
    LocaleEnum(String localeMnemonic, String fullQualifiedLanguageName, Locale locale, Integer order) {
        this.localeMnemonic = localeMnemonic;
        this.fullQualifiedLanguageName = fullQualifiedLanguageName;
        this.locale = locale;
        this.order = order;
    }

    /**
     * Method getLocale returns the locale of this LocaleEnum object.
     *
     * @return the locale (type Locale) of this LocaleEnum object.
     */
    public Locale getLocale() {
        return locale;
    }

    /**
     * Method getLocaleMnemonic returns the localeMnemonic of this LocaleEnum object.
     *
     * @return the localeMnemonic (type String) of this LocaleEnum object.
     */
    public String getLocaleMnemonic() {
        return localeMnemonic;
    }

    /**
     * Method getFullQualifiedLanguageName returns the fullQualifiedLanguageName of this LocaleEnum object.
     *
     * @return the fullQualifiedLanguageName (type String) of this LocaleEnum object.
     */
    public String getFullQualifiedLanguageName() {
        return fullQualifiedLanguageName;
    }

    public Integer getOrder() {
        return order;
    }

    public void setOrder(Integer order) {
        this.order = order;
    }
}
